Plugins/Community Based Plugins/Microsoft Sentinel Custom Plugin Scenarios/High Blast Radius User investigation/HighBlastRaidusUserInvestigation.yaml (72 lines of code) (raw):

Descriptor: Name: HighBlastRadiusInvestigation DisplayName: Investigate or hunt for anomalous activities performed by high blast radius accounts Description: Uses normalized Insights from Sentinel UEBA to Investigate or hunt for Entra ID Accounts with a High Blast Radius exhibiting anomalous activities Settings: - Name: TenantId Required: true - Name: WorkspaceName Required: true - Name: SubscriptionId Required: true - Name: ResourceGroupName Required: true SupportedAuthTypes: - None SkillGroups: - Format: KQL Skills: - Name: HighBlastRaidusInvestigation DisplayName: Investigate for anomalous activities by high blast radius accounts Description: Uses normalized Insights from Sentinel UEBA to Investigate or hunt for AD Accounts with High Blast Radius exhibiting anomalous activities Inputs: - Name: days Description: Look back x amount of days, for example 7, 10, or 14 Required: true - Name: InvestiGationPriority Description: Calculated priority for investigation between 1 and 10 Required: false Settings: Target: Sentinel # The ID of the AAD Organization that the Sentinel workspace is in. TenantId: '{{TenantId}}' # The id of the Azure Subscription that the Sentinel workspace is in. SubscriptionId: '{{SubscriptionId}}' # The name of the Resource Group that the Sentinel workspace is in. ResourceGroupName: '{{ResourceGroupName}}' # The name of the Sentinel workspace. WorkspaceName: '{{WorkspaceName}}' Template: |- IdentityInfo | where TimeGenerated > ago({{days}}d) | where AccountDisplayName != "On-Premises Directory Synchronization Service Account" | project TimeGenerated, AccountUPN, AccountDisplayName, AccountCreationTime, RiskState, BlastRadius, GroupMembership, AssignedRoles, IsAccountEnabled, IsServiceAccount, DeletedDateTime, IsMFARegistered | summarize arg_max(TimeGenerated, *) by AccountUPN | where isnotempty(AssignedRoles) and AssignedRoles != "[]" | where BlastRadius == "High" | join (BehaviorAnalytics | where TimeGenerated > ago({{days}}d) | where isnotempty(UserPrincipalName) | project UserPrincipalName, TimeGenerated, ActivityType, ActionType, SourceIPAddress, SourceIPLocation, UsersInsights, DevicesInsights, ActivityInsights, InvestigationPriority) on $left.AccountUPN == $right.UserPrincipalName | summarize arg_max(TimeGenerated, *) by UserPrincipalName | extend IsNewAccount_ = tostring(UsersInsights.IsNewAccount) | extend Is_VIPUser = tostring(UsersInsights.IsVIPUser)